home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / sun / java2d / SunCompositeContext.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.3 KB  |  75 lines

  1. package sun.java2d;
  2.  
  3. import java.awt.AlphaComposite;
  4. import java.awt.Composite;
  5. import java.awt.CompositeContext;
  6. import java.awt.image.BufferedImage;
  7. import java.awt.image.ColorModel;
  8. import java.awt.image.Raster;
  9. import java.awt.image.WritableRaster;
  10. import java.util.Hashtable;
  11. import sun.awt.image.BufImgSurfaceData;
  12. import sun.java2d.loops.Blit;
  13. import sun.java2d.loops.CompositeType;
  14. import sun.java2d.loops.XORComposite;
  15. import sun.java2d.pipe.Region;
  16.  
  17. public class SunCompositeContext implements CompositeContext {
  18.    ColorModel srcCM;
  19.    ColorModel dstCM;
  20.    Composite composite;
  21.    CompositeType comptype;
  22.  
  23.    public SunCompositeContext(AlphaComposite var1, ColorModel var2, ColorModel var3) {
  24.       if (var2 == null) {
  25.          throw new NullPointerException("Source color model cannot be null");
  26.       } else if (var3 == null) {
  27.          throw new NullPointerException("Destination color model cannot be null");
  28.       } else {
  29.          this.srcCM = var2;
  30.          this.dstCM = var3;
  31.          this.composite = var1;
  32.          this.comptype = CompositeType.forAlphaComposite(var1);
  33.       }
  34.    }
  35.  
  36.    public SunCompositeContext(XORComposite var1, ColorModel var2, ColorModel var3) {
  37.       if (var2 == null) {
  38.          throw new NullPointerException("Source color model cannot be null");
  39.       } else if (var3 == null) {
  40.          throw new NullPointerException("Destination color model cannot be null");
  41.       } else {
  42.          this.srcCM = var2;
  43.          this.dstCM = var3;
  44.          this.composite = var1;
  45.          this.comptype = CompositeType.Xor;
  46.       }
  47.    }
  48.  
  49.    public void dispose() {
  50.    }
  51.  
  52.    public void compose(Raster var1, Raster var2, WritableRaster var3) {
  53.       if (var2 != var3) {
  54.          var3.setDataElements(0, 0, var2);
  55.       }
  56.  
  57.       WritableRaster var4;
  58.       if (var1 instanceof WritableRaster) {
  59.          var4 = (WritableRaster)var1;
  60.       } else {
  61.          var4 = var1.createCompatibleWritableRaster();
  62.          var4.setDataElements(0, 0, var1);
  63.       }
  64.  
  65.       int var5 = Math.min(var4.getWidth(), var2.getWidth());
  66.       int var6 = Math.min(var4.getHeight(), var2.getHeight());
  67.       BufferedImage var7 = new BufferedImage(this.srcCM, var4, this.srcCM.isAlphaPremultiplied(), (Hashtable)null);
  68.       BufferedImage var8 = new BufferedImage(this.dstCM, var3, this.dstCM.isAlphaPremultiplied(), (Hashtable)null);
  69.       SurfaceData var9 = BufImgSurfaceData.createData(var7);
  70.       SurfaceData var10 = BufImgSurfaceData.createData(var8);
  71.       Blit var11 = Blit.getFromCache(var9.getSurfaceType(), this.comptype, var10.getSurfaceType());
  72.       var11.Blit(var9, var10, this.composite, (Region)null, 0, 0, 0, 0, var5, var6);
  73.    }
  74. }
  75.